ISDN interfacing of local area networks

ABSTRACT

An ISDN gateway for local area networks comprises at least one circuit board resident at each network for carrying out protocol conversion and other network interface functions. Two embodiments of the gateway provide bridger and router gateway services, respectively. To improve bandwidth utilization of the ISDN line while transferring voice or data, a B-channel allocation algorithm executed by the gateway and the ISDN line dynamically allocates bandwidth by monitoring traffic at each destination queue and responsively allocating or deallocating virtual B-channels. Bandwidth utilization is optimized by packaging data packets into trains that are transmitted to the destination when the train is completed and upon satisfaction of other conditions. Each train undergoes data compression by execution of a suitable compression algorithm.

TECHNICAL FIELD

The invention is directed generally to Integrated Services DigitalNetworks (ISDN), and more particularly to interfacing local areanetworks to an ISDN line.

BACKGROUND ART

Utilization of personal computers in business and scientificapplications has proliferated considerably over the past decade. Thereis increasing use of small, single-function systems, such as wordprocessors and small business computers. To share and exchange databetween system, and to share resources, systems have been constructed asa centralized network having a single centralized controller operatingmultiple terminals in a time shared manner. This has evolved into aso-called distributed network which divided tasks among computingfacilities, each termed a "node"; the intelligence residing at each nodeis termed a "host".

Distributed networks can be organized in a number of ways, eitherglobally covering great distances or they can be local area networks(LAN) covering relatively short distances. A LAN ordinarily will consistof computers distributed within an office, a building or a campus. Moreinformation on local area networks is available in numerous texts, suchas Keiser, Local Area Networks, second edition, McGraw Hill, Inc., 1989.

Three basic methods to connect local area networks to other networks arebridgers, routers and gateways. Bridges are data-link layer devices thatconnect similar networks together, e.g., Ethernet to Ethernet. Routersoperate at Layer 3 of the OSI model, performing alternate routing bymaintaining a routing table in each host. Gateways operate at the higherOSI Layers, carrying out protocol conversion and other connectivityfunctions. The term "gateway" will be used hereinafter as a term genericto bridgers, routers and gateways.

Personal computers or local area networks are interconnected by atransmission medium, such as coaxial cable, twisted wire pairs andoptical fibers, depending principally on the rate of data transferrequired. The present invention utilizes Integrated Services DigitalNetwork (ISDN) to enable local area networks to be interconnected witheach other to form a wider area network or to enable a local areanetwork to be accessed by a remote personal computer and operated as ifthe computer were resident on the network.

ISDN is a relatively newly developed and emerging field oftelecommunications which integrates computer and communicationstechnologies to provide, worldwide, a common, all-digital network. Thisis based, in part, on standardizing the structure of digital protocolsdeveloped by the International Telegraph and Telephone ConsultativeCommittee (CCITT). Despite the implementation of multiple networkswithin national boundaries, from a user's point of view there is asingle, uniformly accessible, worldwide network capable of handling abroad range of telephone, data and other conventional and enhancedservices.

A complete description of the architecture of ISDN is beyond the scopeof this specification. For details, and for an extensive bibliography ofreferences on ISDN, see Stallings, ISDN, An Introduction, MacMillanPublishing Company, 1989.

ISDN is structured by architecture closely following the OSI Seven LayerReference Model. Within the framework of ISDN, the network providesservices and the user accesses the services through the user-networkinterface. A "channel" represents a specified portion of the informationcarrying capacity of an interface. Channels are classified by two types,Basic Rate ISDN (BRI) and Primary Rate ISDN (PRI). BRI delivers twoB-channels, each having a capacity of 64Kbps, capable of transmittingvoice and data simultaneously. A 16Kbps D-channel transmits call controlmessages and user packet data. PRI provides twenty three B-channels of64Kbps capacity each for carrying voice, circuit switched data or packetdata. The D-channel is a 64Kbps signaling channel. The B and D channelsare logically multiplexed together at Layer 1 of the OSI ReferenceModel.

FIG. 1 depicts the conventional ISDN interfaces. At the customerpremises, an "intelligent" device, such as a digital PBX terminalcontroller or LAN, can be connected to an ISDN terminal TE, such as avoice or data terminal, which is connected to a Network Termination(NT1). Non-ISDN terminals TE may be connected to a Network Termination(NT2) and a Terminal Adapter TA. The NT2 in turn is connected over an"S/T-Interface", which is a four-wire bus, to a termination NT1 thatperforms functions such as signal conversion and maintenance of theelectrical characteristics of the loop.

At the local loop, a two-wire bus, termed the "U-Interface", or "Loop",interconnects NT1 and a Loop Termination (LT) at the central office.Finally, the "U-Interface" is a bus between the local loop at thecarrier end and exchange switching equipment. Details of thisarchitecture are provided in ISDN: An Overview, Data Pro Research,Concepts & Technologies, MT 20-365; pp 101-110, published by McGrawHill, Incorporated (December 1988).

An ISDN gateway must satisfy several functions. It must be capable oftransferring files on the ISDN at a very high rate of data transfer. Thegateway furthermore must be "transparent" to the user, that is, the userof a computer should not be able to distinguish between data transferamong local resources and remote data transfer over the ISDN.Furthermore, standard communications software available for personalcomputers should be application to communications on the ISDN. Bandwidthutilization of the ISDN line must be efficient and independent of theamount of traffic encountered. Preferrably, to enable local areanetworks anywhere to access an ISDN line, gateway hardware andprogramming will be resident at customer premises equipment, rather thanat the central office.

DISCLOSURE OF THE INVENTION

Accordingly, one object of the invention is to connect local areanetworks to an ISDN line.

Another object of the invention is to connect different local areanetworks to an ISDN line using customer premises equipment (CPE)carrying out gateway functions.

A further object is to interconnect personal computer local areanetworks (PCLANs) and the ISDN line for very high rate of file transferto or from a remote location.

A still further object of the invention is to carry out communicationsbetween computers on different local area networks transparently over anISDN line, i.e., so that no difference between accessing local or remotedata is visible to the user.

Another object of the invention is to connect personal computers ondifferent local area networks to the ISDN line, enabling users to accessthe line while using resident software applications.

Still another object is to connect remote personal computers to localarea networks of personal computers over an ISDN line.

A further object is to enable personal computers on at least one localarea network to transfer data over an ISDN line using standardcommunications software.

The above and other objects are satisfied in accordance with one aspectof the invention by a gateway provided at the customer premises,translating protocols used on dissimilar networks and carrying out othernetwork interfacing functions. In accordance with a preferred embodimentof the invention, the gateway comprises one or more circuit modules(ISDN LINE CARD, SYSTEM MASTER CARD, etc.) resident with each local areanetwork, connecting the network to the ISDN line. The circuit module(ISDN LINE CARD) includes means for performing protocol conversion ofdata flowing between the network and ISDN line through the gateway,means for establishing input and output destination queues, means formeasuring traffic flow at each input and output destination queue duringa particular time interval, and means for dynamically allocatingchannels on the ISDN line in response to traffic.

In accordance with a first embodiment (LI/B), a bridger type gatewayconnects LANs of the same kind, as long as the nodes of all LANs alreadyhave unique addresses. Each pair of gateways across the ISDN emulates aMAC layer intelligent "bridge" between LANs. In a second embodiment(LI/R), LANs of different physical and data link layers are connected.Each pair of gateways across the ISDN emulates a network layer "router"between networks.

Preferably, the circuit module includes a system master (SYSTEM MASTERCARD) for managing the configuration of the gateway and for accessingother gateways on the ISDN line. A communication mode adaptor (CMA)incorporated in the module provides dial-up protocols, and an ISDNmanager receives and routes incoming data, setting up, selectively,circuit switched and virtual circuit calls and incorporating theaforementioned dynamic channel allocation functions. In the preferredembodiment, the circuit module further includes an ISDN device driverand a configuration control manager storing a table of gateway operatingparameters.

In accordance with another aspect of the invention, dynamic channelallocation includes long term channel allocation means for allocating ordeallocating transmission channels to a particular destination on theline depending upon data flow traffic to that destination and uponparticular channel parameters, and short term channel allocation means.The short term channel allocation means overrides the long term channelallocation means in response to predetermined conditions for allocatingor deallocating transmission channels on the ISDN line.

In accordance with a further aspect of the invention, the data isarranged in packets, and the module includes means for assemblingpluralities of the packets into trains, each consisting of apredetermined number of packets, for transmission on the ISDN line.Preferably, the trains are compressed prior to transmission to improvebandwidth utilization.

Still other objects and advantages of the present invention will becomereadily apparent to those skilled in this art from the followingdetailed description, wherein only the preferred embodiment of theinvention are shown and described, simply by way of illustration of thebest mode contemplated of carrying out the invention. As will berealized, the invention is capable of other and different embodiments,and its several details are capable of modifications in various obviousrespects, all without departing from the invention. Accordingly, thedrawing and description are to be regarded as illustrative in nature,and not as restrictive.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a simplified circuit diagram of an Integrated Services DigitalNetwork.

FIG. 2 is a symbolic diagram showing a conventional public circuit orpacket switched network.

FIG. 3 is a symbolic diagram showing connecting of personal computerlocal area networks to ISDN lines through ISDN gateways in accordancewith one aspect of the invention.

FIG. 4 is a symbolic diagram showing connection of a remote host to anexisting local area network through two different types of gateways, inaccordance with another aspect of the invention.

FIG. 5 is a simplified block diagram showing hardware architecture of anISDN gateway at the customer premises in accordance with the invention.

FIG. 6 is a diagram of software architecture incorporated in the systemmaster card shown in FIG. 5.

FIG. 7 is a diagram of software architecture showing a LAN line card ofFIG. 5.

FIG. 8 is a diagram showing software architecture incorporated in anISDN line card shown in FIG. 5.

FIG. 9 is a diagram of software architecture incorporated in the SDLCline card shown in FIG. 5.

FIGS. 10(a), 10(b) and 10(c) are symbolic diagrams showing architecturesof the ISDN gateway in accordance with first and second embodiments ofthe invention.

FIG. 11(a) and 11(b) are diagrams showing mapping of software tohardware components within the ISDN gateway in accordance with the firstand second embodiments.

FIG. 12 is a diagram showing operation hierarchy in the ISDN line cardshown in FIGS. 11(a) and 11(b).

FIG. 13 is a symbolic diagram of the communication mode adapterincorporated in the ISDN line card.

FIG. 14 is a flow chart of algorithms for carrying out LTA channelallocation in accordance with an aspect of the invention.

FIG. 15 is a flow chart of algorithms for selecting between LTA and STAchannel allocation.

FIG. 16 is a flow chart of channel processes responding to decisionsmade by both the LTA and STA channel allocation algorithms.

FIG. 17 is a symbolic diagram showing development of a virtual channeland its components.

FIG. 18 is a block diagram of circuitry for carrying out LTA channelallocation in accordance with another aspect of the invention.

FIG. 19 is a flow chart describing assembly and compression of packettrains for transmission to a new B-channel.

FIG. 20 is a flow chart showing decompression and resequencing ofpackets.

FIGS. 21a and 21b are diagrams respectively of a packet and a data frameimplemented in the invention.

FIG. 22 depicts a train of packets in accordance with a further aspectof the invention.

Best Mode for Practicing the Invention

1. Overview

An ISDN gateway for local area networks comprises at least one circuitboard resident in each computer for carrying out protocol conversion andother network interface functions. One gateway system enables any localarea network so equipped with gateways GW to be connected to an ISDNline, as shown in FIG. 3. Any computer on either of the two LANs shownis in communication with, and shares resources of, any computer on theother LAN. Another gateway system, shown in FIG. 4, enables a remotecomputer H to be connected to a local area network of computers throughthe ISDN using a gateway GW2 of the present invention and another typeof gateway GW1 connecting a personal computer to the ISDN. The computerconnect gateway GW1 is described in detail in copending application Ser.No. 08/094,144, to Gagliardi, et al., entitled "ISDN Interfacing ofPersonal Computers", filed on even date herewith and assigned to theassignee of the present invention.

To improve bandwidth utilization of the ISDN line while transferringvoice or data, a B-channel allocation algorithm executed by the gateway,as described in FIGS. 14-17 dynamically allocates bandwidth bymonitoring traffic at each destination queue and responsively allocatingor deallocating virtual B-channels. Bandwidth utilization is optimizedby packaging data packets into trains, shown in FIG. 22, that aretransmitted to a destination when the train is completed and uponsatisfaction of other conditions. Each train undergoes data compressionby execution of a suitable compression algorithm shown in FIG. 19followed by restoration in accordance with an algorithm of FIG. 20.

2. Network Architecture

A. Stack Protocol

The principal characteristics of the ISDN gateway GW shown in FIG. 3 andGW2 shown in FIG. 4 are to connect local area networks to the ISDN toenable the network to become "on line" with a remote computer or anotherlocal area network. Two embodiments of the gateway, in accordance withthe invention, are a bridger-type gateway and a router-type gatewayproviding bridger and router gateway services. The type of gatewayimplemented in each application depends upon the type of signalinginformation used by the gateway to make ISDN connections.

A bridge-type LAN gateway connects existing disconnected local areanetworks of the same kind, as long as each node has a unique address.Each pair of gateways across ISDN emulates a MAC layer intelligent"bridge" between networks, as shown in FIG. 10(a).

A router-type LAN gateway connects existing disconnected local areanetworks with possibility different physical and data link layers. Eachpair of gateways across ISDN emulates a network layer "router" betweennetworks, shown in FIG. 10(b). Impact upon host software can beclassified as follows.

In a first category, some internetwork protocol layer is presumedalready to exist in the newly connected local area networks, and isunique across the networks. In a second category, no new internetworkprotocol exists. In this case, the host protocol stack may have to bemodified for conformity.

FIGS. 10(a) and 10(b) present protocol stacks for both categories. AllLAN gateways are real nodes in the LAN they connect to ISDN. In allgateways, the physical connection to the LAN is a standard linkconsisting, e.g., of an Ethernet or a transceiver cable and atransceiver. In FIG. 10(a), protocol stacks needed for communication arepresented on the assumption that all LAN to be connected by ISDN are ofthe same type and that all nodes already have unique names. Thisrequirement is implicit when using, e.g., token ring global addressing.User data are handled by protocol stacks in the host that do not requireany modification to be connected to ISDN through the LAN gateway. Eachpair of LAN gateways of the type shown in FIG. 10(a) across ISDNimplements a MAC layer bridge between the two LANs. Each gatewayforwards the MAC data packets to the B-channel.

Signaling information for a connection to the remote host is derived bythe gateway from the MAC layer address, as shown in FIG. 10(a), andtranslated into standard ISDN set-up operations. These operations aredefined by CCITT recommendations Q.921 (LAPD or D-channel protocollev.2) and Q.931 (D-channel protocol lev.3) and D-channel pair protocol.

In FIG. 10(b), protocol stacks needed for communication in therouter-type gateway, for both categories (1) and (2), are presented. Thelocal area networks to be connected by ISDN do not have to be of thesame type but a unique internet protocol should exist across all ofthem. If not, another interconnect protocol must be added to all nodesof the local area networks to be interconnected by gateways. Forcategory (1), user data are handled by protocol stacks in the hosts thatrequire no modifications to be connected to ISDN through the gateway.For category (2), the protocol stacks in the hosts will be modified toinsert the necessary internet protocol layer. In both categories, eachpair of gateways shown in FIG. 10(b) across ISDN implements a networklayer router between the two LANs. Each gateway forwards the IP datapackets to the B-channel.

Signaling information for a connection to the remote host is derived byrouter-type gateways, FIG. 10(b), from the IP layer address, andtranslated into the standard ISDN set-up operations.

FIG. 10(c) depicts architecture for connecting a single host node to aremote LAN through ISDN, as shown symbolically in FIG. 4, with a hostgateway GW1 interconnecting host H and ISDN and a gateway GW2interconnecting LAN and ISDN. Details of GW1 are described in thepreviously noted co-pending Gagliardi application entitled "ISDNInterfacing of Personal Computers", incorporated herein by reference.

The protocol stack for GW2 in FIG. 4 is the same as shown in FIG. 10(a),describing bridger-type gateway protocol. The stack shown in FIG. 10(c)emulates a MAC-like interface to the upper protocol layers. Selection ofthe remote LAN is made through signaling information passed by the hostto the GW1 software.

User data are handled by protocol stacks in the hosts, implemented byconventional communication software packages. Host data protocol stackssimply provide a MAC layer protocol conversion from the internal busconnection to the B-channel and add peer protocol. Signaling informationis generated by host software to setup the host connection. Signalingprotocol between host H and the gateway GW1 is shown in FIG. 10(c) bythe arrow labeled "dialup protocol". The signaling protocol stack in GW1translates requests from the host into standard ISDN set-up operations.

B. Hardware

Referring to FIG. 5, an ISDN gateway 100 of a type shown in FIGS. 3 and4, designated as GW and GW2, comprises a "module" having four hardwareelements 102, 104, 106, 108 interconnected by a common bus 110. Theelements 102-108 preferably comprise individual circuit cards, althoughsome or all of the elements may be incorporated in a single circuitboard. The board or boards preferably reside within a personal computerbut alternatively may reside outside the computer as an "outboard"module.

Element 102 is a system master which implements infrequent userfunctions, such as configuration management and connection requests. Thesystem master 102 furthermore functions as a standard computingplatform, emulating an IBM compatible PC or other computer standard.

LAN line card 104 implements firmware and hardware for specific IEEE 802physical and data link protocol together with software carrying out hostfiltering. Different LAN line cards with corresponding protocols will berequired for other LAN connections, e.g., 802.5 Token Ring and 802.3Ethernet.

ISDN line card 106 comprises firmware and hardware implementing the ISDNphysical, data link layer (LAPD), and the D-channel layer 3 protocol,and the physical layer of the B-channel. Software incorporated in theISDN line card 106 implements train protocol and B-channel allocationalgorithms as well as data compression algorithms to support a virtualbroad band capability of the gateway, described in copending applicationNo. 07/976,923 to Gagliardi et al., entitled "Dynamic Channel AllocationMethod and System for Integrated Services Digital Network". SDLC linecard 108 includes firmware and hardware to implement the SNA physicaland data link (SDLC) layers. This card is optional to the Network.

3. Software Architecture

The software architecture of system master element 102, shown in FIG. 6,is configured with three layers of software underlying the system master102(a) in a stack. The underlying layers comprise call requestmanagement, configuration management and monitoring layer 102(b), aswell as layers 102(c), 102(d) for implementing a computing platform.

In FIG. 7, the software architecture of one embodiment of a LAN linecard (LLC) 104 for 802.5 Token Ring comprises a functional layer 104(a)together with a layer 104(b) comprising a host filter, receiving andselectively processing packets addressed to the host. Underlying layers104(c), 104(d) in this example implement the specific IEEE 802 physicaland data link protocol (802.5) for Token Ring.

In FIG. 8, the software architecture of the ISDN line card 106 comprisesa functional layer 106(a), together with underlying layers 106(b)-106(f)for carrying out the requirements of the OSI Reference Model layersassociated with ISDN. These layers include a communication mode adapter(CMA) at layer 106(b) and protocol services at layer 106(c). Layer106(d), IIM, carries out gateway peer protocol and executes bufferallocation algorithms to be described in detail later. Peer protocols,applied on B-channels used by the gateway to implement train packing,compression and error handling, are also described later.

FIG. 9 depicts software architecture of the SDLC line card implementingthe SNA physical and data link layers for carrying out inter-networkingamong hosts.

Mapping of software shown in FIGS. 6-9 to hardware components of FIG. 5is symbolized in FIGS. 11(a) and 11(b). Referring first to FIG. 11(b),router-type LAN gateway, within the system master card 102, a USERsoftware module 110 supports user application software and protocolstack, residing at layer 7 of the OSI Reference Model. Configurationcontrol manager 112 of the system master monitors bandwidth allocationand errors. The system master 102 specifically manages configuration ofthe gateway, providing status, billing and information tracing on theuse of resources in the gateway, as well as access to internal tablesused by routing gateway services. Also provided by the system master arenetwork management services and remote access to other system masters inthe same interconnected network.

Functions carried out by the system master 102 include updating ofrecords, loaded on disk into memory resident data structures when thesystem is initiated. When these tables are updated, the disk isautomatically updated as well.

Configuration control manager 112 controls parameters which define theresources available to the gateway and the access privileges to thesystem master 102. A connection request manager, incorporated in 112,defines how the gateway relates to other gateways for implementinggateway functions to a personal computer.

Configuration control manager 112 further maintains a configurationtable for parameters controlling the operation of the gateway. Thetable, implemented in software, defines the ISDN configuration includingnumber of channels allocated to the gateway, characteristics of thechannels and all directory numbers associated with the gateway.Furthermore stored are characteristics of the types of interconnectionsof the host side of the network, e.g., RS-232, DMA, etc., and defaultparameters for incoming calls, e.g., select all non-collect calls, allowcollect calls with proper user information and collect calls only fromparticular numbers. Level of system monitoring, also retained by thecontrol configuration manager tables, controls available options andenables the amount of overhead associated with those options to belimited. Password information for access to the gateway and userprofiles determining what kind of activities are allowed to a given useror a class of users also are retained in the manager tables.

A connection request manager (not shown), included in module 112,controls a table containing information required to set up a B-channelor remote gateway. This information includes at least one remote ISDNnumber for the connection and any user information required in the layer3 set-up message. For LAN interconnections, the connection request tabledefines the interconnected LAN. During operation of the gateway, thistable also records whether the connection is established and provides ahandle for the connection which can be used to direct packets to adestination manager.

Configuration control manager 112 additionally collects statistics forB-channels, including channel utilization including a statisticalsampling to determine the percentage of idle capacity on the channel,possibly on a per-connection basis. Since each channel isbi-directional, measurement takes place both on the outgoing andincoming lines. Information also is maintained on any delay for packetsin the system, as well as on the "high water mark" in the buffer poolfor a given destination and the number of buffers discarded for adestination due to memory constraints. For channels that are connected,the percentage of frames sent or received in errors will also berecorded for use, among other ways to determine the type of data linkprotocol applied to a given destination.

Use of the gateway by nodes of an LAN is monitored by a systemadministrator (not shown) which records the amount of data sent orreceived by a node on a per-cargo destination basis, the number ofconnections initiated due to packets of a given node, and the arrivalrate of packets from a particular node. The system administrator furthermay monitor broadcast or multi-cast transmissions by a particular node,and the number of times a node is not found in tabulated data. To reduceoverhead, the system administrator restricts monitoring to traffic fromspecific nodes or uses statistical sampling of all traffic in thegateway.

Whereas the system master card 102 performs the necessary configurationand reconfiguration functions for supporting gateway operations carriedout by intelligent ISDN manager (IIM) 116 in ISDN line card 106, LANcard 104 comprises principally a host filter 114. Upon arrival of apacket from another host within a local LAN, the host filter 114examines the link-level address of the packet. If the packet isaddressed to a local host other than the gateway, the packet isdiscarded. If the packet is addressed to remote hosts covered by abridging service, it is passed to bridger 118 implemented in ISDN linecard 106. If the packet is addressed to the gateway, and the packetindicates a service access point of the gateway protocol services, thenit is passed to gateway services module 120. Finally, if the packet isaddressed to the gateway, and the packet type is not recognized to beany of the service access points of the gateway protocol services, thenit is passed to user module 110 in system master card 102 (LI/B).

More specifically, if the packet is passed to the bridger 118, thepacket is intended to be bridges over to another local area network. Thelink-level address resolved by the bridged 118 using pre-configuredtables. On the other hand, if the packet is passed to gateway servicesmodule 120, for category (2), the packet is intended to be processed bysome gateway protocol service programs analogous to those in the userprivate protocol stack in user module 110. The services provided arethose commonly associated with the network or inter-network layer ofcommunication protocols, including name and address resolution and somelimited form of routing. An example is a simplified re-implementation ofthe network layer of an existing communication protocol. These serviceprograms in turn interact with the IIM 116 to pass data to remote hosts.

A packet passed to the user module 110, in category (1), is meant to behandled by some application or protocol software resident on the samenode as the gateway. An example of such a program is a private protocolrouter. The user module 110 of system master card 102 interfaces withcommunication mode adapter (CMA) 122 of the ISDN line card 104 through acommunication mode adaptor interface 124. The CMA 122 provides variousadaptation modules allowing the user module 110 to interface withdestinations, such as a user modem, leased lines or virtual circuittelemetry which adapts existing USER software and interacts with publicor private data networks that support virtual circuits.

The architecture of the CMA 122 is depicted symbolically in FIG. 12. Thegateway services module 120 of FIG. 11(b) provides router functions forprivate protocol stacks. Name and address resolutions are performed atthe user module 110, incorporating existing software of the privateprotocol stacks or one performed within gateway services module 120. Inthe latter case, the gateway services module 120 can be performed of atan existing private network/internetwork protocol stack, re-implementedas required for particular applications.

The intelligent ISDN manager (IIM) 116 receives packets of data andcommands to set up virtual circuits. The IIM 116 implements trainpackaging and B-channel allocation as well as data compression, formingimportant aspects of the invention. The content and operation of IIM 116shall be described in detail hereinafter.

Bridger 118 in FIG. 11(b) operates at the 802 medium access (MAC) layerbetween LANs or single nodes. This module is used to create a muchlarger "virtual LAN" out of an arbitrary number of LANs and singlenodes. An 802 MAC level bridge as a method to interconnect level 2networks in this regard is particularly advantageous for severalreasons. First, providing a connection at the MAC level ensures that allhigher level protocols available across connected LANs will continue towork in a virtual LAN with no modification, and that networkapplications based on these higher level protocols will also operate inthe same manner. A bridge in this respect supports many types of networksystems on different LANs.

Furthermore, once the bridge has determined that a remote conversationis underway, forwarding of remote 802 packets is achieved on the orderof 100 instructions, whereas network level routing generally requires onthe order of several thousand instructions. This means that bridges ingeneral can handle an order of magnitude more packets using the sameprocessing power.

Finally, MAC level bridges operate in a connectionless mode and dependon high quality transmission lines to minimize retransmissionscontrolled by higher level protocols on an end-to-end basis. Networkrouters tend to require much more overhead, because they operate inconnection mode and in view of to the number of control messagesrequired to allow for a dynamic routing. Given the disparity betweenISDN bandwidth and LAN bandwidths, the ability to minimize the overheadneeded to manage the LAN connection is considerable.

Peer protocol implemented by IIM 116 ensures that data packets arrive tothe remote gateway in the same order as they were received by the localgateway. Peer protocol provides a transport level surface to sequenceall packets for this purpose. Interfacing between the IIM 116 and ISDNis carried out through an ISDN device driver 119.

The bridge-type LAN gateway shown in FIG. 11(a ) comprises only theconfiguration control manager 112, host filter 114, ISDN manager 116,bridger 118, and driver 119. The remaining modules of FIG. 11(b) areunnecessary, as the higher level router functions of the gateway are notutilized for bridge services.

5. Dynamic Bandwidth Allocation

A further aspect of the invention involves improving bandwidthutilization of the ISDN line while using gateway features. A B-channelallocation algorithm executed by gateways between terminals and the ISDNline dynamically allocates channel by monitoring traffic at eachdestination queue, shown in FIG. 13, and responsively allocating ordeallocating virtual B-channels. Bandwidth utilization is optimized bypackaging data packets into trains that are transmitted to thedestination when the train is completed and upon satisfaction of otherconditions. Each train undergoes data compression by execution ofsuitable compression and correction algorithms.

More specifically, B-channel allocation, implemented by an allocationalgorithm to maximize utilization of the channels, minimizes responsetimes and the probability of losing data packets due to buffer overflow.The channel allocation algorithm, residing within the B-channel managerof IIM 116 (FIG. 13), includes commands to establish user-levelconnections to destinations and to send and receive data. Data passed tothe IIM 116 is queued in destination queues. The channel allocationalgorithm monitors the status of the destination queues, and dynamicallyallocates ISDN channel bandwidth to these queues. The followingdefinitions support the channel allocation algorithm.

A "destination", which is a connection at the router level, typicallycoincides with a physical router. If peer protocol is compatible, alluser-level connections of various types, such as virtual circuit, modemconnections, LAN, packets, etc., can multiplex within the same routerconnection. If the peer routers are incompatible, multiple router-levelconnections to a single physical gateway are necessary.

Associated with each destination is a "destination queue", denoted asQ(d), consisting of a pool of buffers. The pool of buffers fordestination d comprises the messages destined for d. The number ofbuffers in Q(d) is denoted as b(d); it is assumed that B-channels outputfrom or input to a buffer in parallel, with each buffer having a fixedmaximum size.

A number of B-channels currently allocated to a destination d is denotedas B(d). If a queue Q(d) becomes too long relative to the number ofchannels allocated to d, an extra channel is allocated. On the otherhand, if Q(d) is relatively short compared to the size of B(d), somechannels are released. If no buffers are available for accumulation of anew train at a destination d, a "buffer fault" is created.

Events that define the length of a packet train trigger the invocationof the buffer allocation algorithm these events comprise packet arrivalsat ISDN line card 106 for transmission to the public network. There arefour conditions that must be considered:

1. If a destination d is known, and Q(d) contains an "open" buffer, thatis, a buffer that is not filled to the maximum length, the packet isaccumulated into the train.

2. If the destination d is known, but no "open" buffer is available inQ(d), a new buffer is created and a new train is started.

3. If the destination d is known, but an "open" buffer is about to fillup, the packet is accumulated in the current open buffer. Thereafter,the buffer is closed to seal the train.

4. If destination d is unknown, a new buffer pool is started for a newtrain.

The channel allocation algorithm operates asynchronously to the bufferallocation algorithm described previously. As one important aspect ofthe invention, the channel allocation algorithm is partitioned into twocomponents, long term allocation and short term allocation.

6. Long Term Channel Allocation

Long term allocation, LTA, monitors the recent historical track patternto and from a destination, and decides upon the bandwidth and types ofchannels to be allocated to that destination. Short term allocation,STA, monitors the current size of the destination queues and the agingconstraints of these queues, and decides whether to deviate,temporarily, from decisions of the long term allocation algorithm. Thisenables response to situations that are not well-handled by long termallocation, e.g., situations arising due to a temporary or sudden surgeof traffic to certain destinations not predicted based on the long termallocation algorithm. Decisions on bandwidth allocation produced by thelong term and short term allocation algorithms preferably are stored incharged memory, and are carried out at convenient intervals by ISDNchannel processes to be described later.

Channel allocation is described herein for B-channels, although similarallocation can be carried out for D-channels as well. In general,B-channels can be used in a circuit switched mode or in a packetswitched mode using data formats show in FIG. 21(a) and 21(b). Thecircuit switched mode preferably is used only to transmit data betweenlow-traffic destinations in view of the relatively high set-up/tear downoverhead required. The packet switched mode is preferable fortransmission to destinations with a low-traffic rate if there is amoderate response time requirement. For destinations that require highertraffic rate or have more stringent response time requirements, use ofB-channels in the circuit switched mode is preferable. For destinationsthat do not have high traffic rate but have very stringent response timerequirements, the B-channels should be dedicated in the circuit switchedmode and deliberately underutilized.

The LTA algorithm is summarized in the flow chart of FIG. 14. Thetraffic rate R at each destination is monitored by a software flowmeter,which may be a counter of data quantity arriving at the destinationqueue within a particular interval of time. Each software flowmeter ispolled at fixed intervals (w). The flowmeter is read, then reset, andthe reading is used by the LTA to determine how many B-channels are tobe allocated to that destination.

One embodiment of a LTA algorithm LTA, in accordance with the invention,is as follows. Referring to FIG. 14, step 150 reads a traffic rate R fora destination d, wherein R is defined as follows.

    r=Max {v.sub.-- in (d, t-w, t)/w, v.sub.-- out (d, t-w, t)/w},

where t is the time when the meter is read, v₋₋ in(d, t-w, t) is theaccumulated input traffic volume for destination d between time t andt-w, and v₋₋ out(d, t-w, t) is that for the output queue.

in step 152, an integer x, that is greater than or equal to zero, isfound such that

    x * hbw.sub.-- cs≦r≦(x+1) * hbw.sub.-- cs

and xB channels in circuit switched mode are allocated to destination d,where hbw₋₋ cs is the achievable bandwidth once set up for a circuitswitched mode B-channel. This number in practice is close to 64 Kbs.

Assuming that residual =r-x * hbw₋₋ cs, step 154 determines whetherresidual is greater than mbw₋₋ cs, where mbw₋₋ cs is the minimumutilization of a circuit switched B-channel, or whether the responsetime is more stringent than moderate (step 156). The term "moderate" isdefined to be the response time that can be offered by a packet switchedchannel. If either condition is true, than one more B-channel isallocated to destination d (step 158).

On the other hand, if 0 ≦residual≦mbw₋₋ cs and the response timerequirement is moderate or more relaxed than moderate, and traffic issuitable for packet switched channels, a fraction of a packet switchedchannel is allocated to destination d, wherein the fraction f isdetermined as follows.

    ebw.sub.-- ps=effective bandwidth of a packet switched B channel

In step 160, if destination d is not reachable by packet switchedchannels, or the packet is not of a nature that is suitably transmittedthrough packet switched channels, and the response time requirement isvery relaxed (step 162), then a fraction of a circuit switched modechannel is allocated to destination d (step 164). The fraction in thisexample is determined by the size of the residual. The notation used inthe adore algorithm is as follows.

x, f: decision variables

t, r, residual: state variables

ebw₋₋ ps, hbw₋₋ cw: ISDN performance profile

mbw₋₋ cs, w: algorithm control parameters response time requirements forpacket transmission:

tight: ≦260 ms

moderate: between z seconds and 260ms

very relaxed: ≦=z seconds.

In addition, the algorithm is sensitive to the transmission delay ofpacket switched channels and the ISDN call set-up and tear down timesfor circuit switched mode. The former is used to derive a boundarybetween moderate and height response times. The latter is used tocalculate the response times obtainable for time-shared fractionalallocation of B-channels in circuit switched modes, which in turndetermines the value of z which defines the boundary between moderateand very relaxed response time requirements. The basic logic of thealgorithm remains unchanged under different performance profiles.

An important algorithm control parameter is the "meter window" w, whichis selected such that the algorithm is sufficiently sensitive toshort-term fluctuation in traffic intensity but is not too sensitive. Ifw is too small, a very short-termed surge in traffic may result in toomany B-channels allocated and therefore will incur a high set-up teardown overhead. If w is too large, the algorithm may not be responsiveenough to a short term search, resulting in a fast destination queuebuild-up. An excessive amount of buffer space may be consumed andresponse time may be degraded.

To attenuate sensitivity, the following method uses weighted averagingof traffic in multiple windows. If a window system w with three windowsw1, w2 and w3 is used, with weights wt1, wt2 and wt3, where the sum ofwt1-wt3 is unity, traffic rate r can be equated to R(d, t, W,) computedas follows: ##EQU1##

With this generalization, to allow the algorithm to be more sensitive toshort term fluctuation and less to the long term pattern, wt1 should beincreased and wt3 decreased, and vice versa. Multiple counters aremaintained for each destination queue using this strategy.

7. Short Term Channel Allocator

The LTA algorithm functions well in cases where there are sufficientB-channels available and decisions made by LTA are feasible. This meansthat the total number of B-channels allocated by LTA is smaller than thetotal number of B-channels subscribed, and sufficiently smaller suchthat the probability that an incoming call request finds all channelsbusy is very small, and further that the recent past history in factrepresents a good basis for allocation. When such conditions are notmet, the STA algorithm must be implemented.

In general, STA makes decisions which override, temporarily, decisionsmade by LTA. Channel processes, described later, implement decisionsmade by LTA under normal circumstances. When a B-channel is just "freed"from servicing an input and output buffer, the B-channel process checksto see if a decision has been made to deallocate channels from thedestination d. If so, it deallocates itself and finds a new destinationfor which a decision has been made by LTA to have additional channelsallocated. However, when unusual conditions are detected, such as adestination queue being ignored for too long, or a B-channel processencountering an empty destination queue, self-adjustment may beperformed by the B-channel process to execute decisions rendered by STA.Two examples to which STA responds are (1) if any buffer in thedestination queue d is found to exceed an age limit, or (2) if thefollowing quantity exceeds a relative queue size limit: ##EQU2## Where:T (d_(i))=size of kth train for k i the ith destination

B (d_(i))=no. of B-channels i assigned to the ith destination

The above relationship is satisfied when the quantity of data in alltrains to a particular destination exceeds the number of B-channelsassigned to that destination.

Logic implementing execution of the STA is shown in FIG. 15, whereinstep 170 waits until a B-channel is freed from servicing in the inputbuffer and the output buffer, and then waits for an STA condition, suchas the two conditions previously described, to be detected (step 172).LTA is implemented in step 174 unless the STA condition is detected. Inresponse to an STA condition, STA channel allocation is carried out instep 176, and the process continues.

8. B-Channel Processes

An important aspect of the invention involves the B-channel processeswhich respond to decisions made by both the LTA and STA. Referring toFIG. 16, channel process invocation is triggered in response to an endof train transmission on any B-channel for input or output traffic.There are three different cases for reallocating a recently freedB-channel to release an emptied buffer to a free buffer pool:

1. The first part of the channel process algorithm prevents locking outtrains associated with low traffic rate destinations, or locking outincoming call requests. Executing lockout prevention at the first partof the algorithm eliminates possibility of lockout. Since this part ofthe algorithm tends to disturb stable allocations of B-channels to highintensity traffic streams, probability of invocation preferably ismodulated inversely to the number of B-channels assigned to thedestination associated with the just freed B-channel.

The probability of invocation is higher if the B-channel is allocatedfractionally to a high number of distinct destinations. Probability ofinvocation is lower if more B-channels have been allocated to the samedestination. In other words, the higher the traffic rate for adestination d, the lower the probability of causing a "wild"deallocation of one of its B-channels to handle of locked out trains.

Sealed trains are time stamped. A check is made by STA over the entirebuffer pool for all destinations to see if there are trains whose ageexceeds a predetermined age limit. If any are found, absence ofB-channels allocated to their destinations are checked to confirm thattrains are truly locked out. If such a flag is found, the just freedB-channel is associated to all respective destinations, originatingfractional allocations of B-channels, the oldest locked out train isselected and transmitted. A condition wherein the age limit is set at asufficiently high level, and if overall traffic does not exceed thecapacity of the gateway is very rare. This condition must be rare toavoid thrashing in the allocation of B-channels, and must be handled asthe first priority decision to avoid blocking trains associated withvery low packet rates.

2. If any complete train is waiting for a transmission to the samedestination, in step 180 of the flow chart, the B-channel is re-used totransmit it. Giving priority to the same destination re-use of theB-channel minimizes ISDN call overhead.

3. Transmission toward the same destination d_(i) and the B-channel isfractionally allocated to a pool of n destinations (step 182), then theremaining n-1 destinations in the pool are checked for waiting trains(step 184); if one is found, the channel is assigned to it fortransmittal. This allows maintenance of "stable" pools of low trafficrate destinations. If no train is waiting for a destination in the pool,or if the B-channel is not fractionally allocated to a pool ofdestinations, then a Flag-Queue-Size is checked (step 186), and if set,a new destination d_(i) is computed as the one which contains thelargest relative queue size. Thereafter, the channel process remainswith decisions made by LTA.

9. Train Packaging

Packet sequences are mapped into cargo destinations, with many packetsequences being designated to a single cargo destination. Mapping ofpacket sequences to cargo destinations is supported by system master110. Of particular importance, a cargo destination is divided into manytrains of a format shown in FIG. 22 in accordance with an aspect of theinvention. A train contains an integral number of packets. There is nolimit to the size of a train, although the size is predetermined and allgateways preferably use the same maximum train size so that fixed sizebuffers can be implemented.

The content of a train is compressed as described hereinafter, then"framed" by adding start and stop sequences, a checksum and other framecontrol information. Peer protocol preferably specifies the descriptionof a frame, including details of the frame header and data fields. Thismodel enables the Deer protocol to operate at three different levels, PSpackets (803 packets having a PS header), trains and frames. Thefollowing diagram shows transformations that a packet undergoes both asa packet arrives to a gateway from a local area network and as thepacket is transferred back to a different local area network:

    ______________________________________                                        802.5 LAN 1                                                                   (full 802.5 frame)                                                            GW Lan Card                                                                   (802.5 packet stripped                                                        of fields not covered                                                         by the checksum)                                                              Packet Sequence Builder                                                       (PS header +                                                                  stripped 802.5)                                                               Train Builder                                                                 (buffer of PS packets)                                                        Destination Known                                                             Frame Builder                                                                 (Frame Header +                                                               compressed Train (bit array) +                                                Frame Trailer)                                                                B Channel                                                                     64Kbs bit stream                                                              ISDN                                                                          ______________________________________                                    

FIG. 21a shows a PS packet comprising the following fields: PT (packettype), PSN (Packet Sequence Number), LEN (Length of Stripped Packet) andData. A data frame format, shown in FIG. 20b as another alternative,comprises the following fields: FS (Frame Start), FT (Frame Type), FSN(Frame Sequence Number), FC (Frame Control), Data, FCS (Frame Checksum)and FE (Frame End).

Calls from a cargo destination manager determine the cargo destinationfor the received packet. The size of each queue and the hold time ofeach queue not being serviced by the train builder is communicated tothe B-channel allocation manager (FIG. 13). The PS header has a packetsequence number to each packet, and the initial packet in a sequence isassigned sequence number 1. The PS header is removed from the 802packet, checked and may be discarded.

Assuming the packet is valid, it is sequenced as follows. If the packetsequence number is 1, the bridge manager is notified that a newconversation with a remote node has been initiated by the remote node,and the bridge manager will update the bridge data base. If the sequencenumber is not 1, the number is checked to see if there was a gap fromthe last packet received. If a gap exists, the packet is queued, and atimer is set. If the missing packet arrives before the timer expires,the queue is re-ordered, and the packets are released in order.Otherwise, the number of received packet is recorded, and the packet isreleased. If a packet with a lower sequence number subsequently arrives,it is discarded. The 802 packet type is checked and 802 protocoltranslation is carried out if necessary, i.e., translating an 802.3packet to an 802.5 packet.

The train builder requests packets from the cargo destination manager,allocates and fills buffers and maintains the number of bytes used inthe buffer. Received buffers are unpacked and passed to the level aboveafter being parsed to ensure that no error in transmission has occurred.A compressor compresses the input buffer using a compression algorithmas described in the next section. Incoming data is decompressed andtested to confirm that it will fit in a new buffer; if not, an error isindicated.

In frame management, a data frame is built by adding a frame header andtrailer to the active bits in the buffer. The B-channel allocationmanager indicates when the frame control bits should be set to "lastframe". The frame is gated onto the B-channel for the destination foundin the buffer control block. The buffer is freed after being gated tothe B-channel. For incoming data, a buffer is allocated for the arrivingframe. The frame is checked using the FCS, and any frames in error arediscarded. Control frames are supplied to the system master. Data framesare supplied to the compression manager, and the B-channel allocationmanager receives a "last frame" setting in the frame control (FC) field.

10. Data Compression

Another aspect of the invention provides data compression of packettrains, such as implementation of algorithms based on run-lengthencoding and Huffman encoding, and variations of Lempel-Ziv algorithms.Run-length encoding refers to replacement of sequences of identicalsource elements by a triple consisting of a special code indicating a"run" of elements, a count of the run length and the repeated element.Huffman encoding translates fixed-sized source elements intovariable-sized codes, where the size of the output code and bits isapproximately the logarithm of the probability of the source element.For some kinds of data, the probabilities of elements are well known andfixed translation tables are available. In more general cases, where thedistribution of source elements is not known, a translation table can becomputed for a sum block of input data, and transferred along with thedata to allow decompression. This requires two passes over the inputduring compression; table size must be significantly smaller than thedata blocks.

The Lempel-Ziv algorithms convert variable-sized input elements, orstrings, into fixed-sized codes. Allowing long input sequences gives thepossibility for higher compression ratios than are possible withfixed-size source element algorithms, such as Huffman encoding. TheLempel-Ziv algorithms are adaptive in that translation tables are builtdynamically to reflect characteristics of the input, but require only asingle pass during encoding. Decompression can be performed bydynamically building the same translation tables as were used duringcompression, using information implicit in the encoded data stream suchas whether a particular code has been encountered.

The typical ranges of compression ratios of a compression algorithmselected to compress packet trains vary from unity for certain kinds ofinherently random data such as floating point data or previouslycompressed data, to eight for some data bases containing large amountsof redundant or null data. The average compression ratios over mixedinput types depends on the chosen samples, but ratios of between two andfour for fairly large samples of mixed input found on real computersystems are common; two is proposed as an example in the preferredembodiment.

Error detection and correction, as a surrounding protocol on compresseddata allow non-delivery of corrupted blocks, is required since anyerrors lead to catastrophic corruption of the rest of the packet train.The D-channel has built-in error protection by virtue of using the HDLCprotocol which includes error detection, packet sequencing andre-transmission.

11. Virtual B-channel Formation

Referring to FIG. 17, virtual B channels are formed out of a B channelpool in response to traffic on the ISDN line. A controller 170 shown inFIG. 18, comprises a virtual B Allocator/Resource Manager 172 whichopens a virtual B-channel with control attributes in table I, below,from the B-channel pool as requested. Manager 172 also assigns a virtualB processor 174 implemented from among a plurality of such processors,and handles related supporting global resources. The virtual Bprocessors 174 at run time or initialization time provide the service oftransparent addition and deletion of new or existing component channelsin its virtual B-channel based on virtual B attributes. The processors174 further provide transparent multiplexing of client data. VirtualB-channel monitor 176 carries out traffic and error monitoring of allvirtual B-channels. Data traffic flow and allocation, day allocation andreplacement of channels to dynamically alter bandwidth are performed bythe monitor 176.

Call set-up/disconnect processor 178 sets up and disconnects protocol onthe D-channel. Processor 178 interfaces to B-channel hardware totransform the B-channel call set-up or disconnect, and interfaces withthe virtual B processors 174, resource manager 172 and client. HDLC/LAPDlinks 180 provide the variable links for clients, and are optional.

Component channels allocated for a virtual B-channel have the followingfour defined states: activated, deactivated, transient and steady. Inthe deactivated state, data transfer is forbidden although controlprotocol exchange is not. Component channels allocated or joined areinitially in the deactivated state. A channel, deactivated for a senderimmediately following the deactive₋₋ b command, described later, isqueued for transmission. For a receiver, a channel is deactivatedimmediately after the command is received. Only a bi-directionallydeactivated channel is removed and physically disconnected from thevirtual channel of which it was a member.

In the activated state, both data and control protocol transfer arepermitted. A channel is activated to a sender only after acknowledgementof the active₋₋ b command transmitted is received. For a receiver, achannel is activated immediately after this command is received.

The transient state is defined by guarding periods arriving beforeacknowledgements are received from the far-end. A virtual channel istransient when any component channels are transient. No data can be sentover a channel in the transient state.

A component channel is in the steady state if it is not in the transientstate, that is, if it is activated or deactivated. A virtual channel isin the steady state if all its components are in the steady state.

A virtual B-channel is operative in two multiplexing modes, restrictedmode and forced load-balancing mode. In the restricted mode, datareceived for transmission is sequentially distributed, one packet at atime, in a round-robin fashion over the steady activated componentchannels; deactivated channels are skipped. The far-end virtual Bprocessor 174 receives and recovers data in the same round-robinsequence. In the load-balancing mode of operation, the distribution fortransmissions over the channels follows a protocol ofmost-empty-channel-first for transmission. The receiver recovers it bythe global sequence numbers by scanning, comparing and carrying outtrace-back time-out presentation. During either distribution process,active₋₋ b commands, described below, are sent in-line on thedeactivated component channels. For component channels to bedeactivated, deactive₋₋ b commands are sent in-line over these channelsin place of the data in the sequence. Time-fill SYNC₋₋ vB packets may besent over channels in the restricted mode of operation to avoid "holes"in the data stream, and further can be used for time control in theload-balancing mode of operation.

12. Control and Multiplexing

The following are the command categories and their detailed format withbit definitions. This protocol assumes the use of flow control to beoptional, at least to some degree, depending on the implementation andenvironment. In the restricted mode, this can be controlled by clientlink level protocol; outstanding transmissions preferably should notresult in difference of twenty-six generations or more between thereceiving and the far-end transmitting loop. The load-balancing mode hasthe same format except that all the numbered command categoryheader-bytes described below will be two bytes in length.

* DATA

Ossnnnnn: one byte as header of client's data for transmit.

* RQST₋₋ Bs

101nnnnn: one byte header of one or multiple control bytes. The firstcontrol byte can further specify explicitly whether it is global. If itdoes not specify, it depends on the address bytes which follow. Noaddress byte for the in-band operation is required, and multiple addressbytes imply the in-band line is no explicitly included. The explicitglobal commands have the leftmost bit on, followed by explicitlyspecified address bytes. If the leftmost two bits are both on, it is abroadcast, and no address bytes follow. Multiple bytes are useful foroff-band control. At present, only one byte of in-band control isemployed. The leftmost third bit is reserved, and the fourth bit is forsystem control point specification. These are external or internalindicated by E and I respectively as follows. The last four bits definethe commands of this category. At present, these are:

DEACTIV₋₋ Bs group: uwxlz, w bit is reserved and u defines two systempoints.

    ______________________________________                                        DEL.sub.-- Bs - (OXOO | O), an external delete command               DEX.sub.-- Bs - (DEL.sub.-- Bs | 1), an DEL.sub.-- Bs, followed      by                                                                            external setup                                                                DIL.sub.-- Bs - (DEL.sub.-- Bs | 0X10), internally initiated         delete command                                                                DIX.sub.-- Bs - (DEX.sub.-- Bs | 0X10), DIL.sub.-- Bs, followed      by                                                                            internal setup                                                                ACTIV.sub.-- Bs group: uwxOz, w bit is reserved, u the same                   as defined above.                                                             ADD.sub.-- Bs - (0X00 | 2), an external add command.                 AID.sub.-- Bs - (ADD.sub.-- Bs | 0X10), an internally                initiated ADD.sub.-- Bs                                                       ______________________________________                                    

* SYNC₋₋ vB

110nnnnn: one byte only, used for time-fill and synchronization.

* RA₋₋ Bs

111nnnnn: one byte header, followed by no or multiple optional bytes.This is an acceptance acknowledge in reply to a RQST₋₋ Bs, and in-bandis implied if no other bytes follow. Similar to the case in RQST₋₋ Bs,the first by to which follows can further specify whether it is global.The leftmost two bits have exactly the same meanings, which describe thescope of the possible further succeeding address bytes. The leftmostthird bit, if on, turns the whole meaning of the response into anegative acknowledgement, instead. The last five bits are the same asfor RQST₋₋ Bs.

* MODE₋₋ vB

1000000m: for virtual channel operation and format specification. Thishas two members, MODE₋₋ rst with m=0 and MODE₋₋ lbc with m =1; MODE₋₋rst defines the nnnnn five bit generation number in restricted mode. Inthe load-balancing mode, it handshakes with MODE₋₋ lbc, with thirteen(13) bits global sequence numbers, when opening a virtual B. Theattributes of Table I below, to follow after these headers are optional.The mode negotiation can proceed only when all component channels are indeactivated states, or UNA will be received. if the optional attributesare not accepted, UNA will also be received. A REJ will be received ifthe remote end does not support or will not accept this request. Inaddition to this role of mode negotiations, MODE₋₋ vB resets thegeneration number or the global sequence number for transmitter and thecorresponding variable back to 0 to restart and resets the transmitterand receiver (loop) pointers back to the first component position.

* RR

10000010: Informs the far-end receiver that this end is ready.

10000011: Informs the far-end receiver that his end is not ready.

* ATTRB vB

100000100: The parameters in Table I follow this for far-endnegotiation.

* UA

10010000: This unnumbered positive response means acceptance in the modenegotiation. The same MODE₋₋ vB packet will be sent back as bi-directioninitialization, following the UA. The UA is also used foracknowledgement to flow control commands RR and RNR. It is used foracceptance acknowledgement to ATTRB₋₋ vB as well as unnumbered commands.

* UNA

10010100: a negative response for refusing, used similarly to UA.

* REJ

10011100: as explained in the MODE₋₋ vB description.

All these unnumbered are in-band, although MODE₋₋ vB is for global. The"nnnnn" is a module 32 correlation generation number, or a zero basedglobal sequence number, assigned to each round of transmissions inrestricted mode of operation, or assigned and incremented by one foreach numbered transmission in the load balanced mode. The "ss" in theDATA command, which has four values 11, 10, 01 nd 11, is for framesegmentation.

Processing of these commands is independent of their arriving timingphase with respect to other channels, once dequeued. The sequencenumbers are for data synchronization across the component channels. Areceiver variable "nr", used for synchronization, is incremented by oneafter each round, or each actual numbered reception. This is a recoveryprocess corresponding to the far-end sender's sequence numberincremented for each round, or each data or numbered commandtransmission.

Once mode negotiation is done, sequence number comparison is thenstarted. The selected virtual B processor 174 polls the receiving queueand then steps to the next component channel. In restricted mode, ifnothing arrives in the queue of an activated channel, the processorstays and waits indefinitely. In the case of MAC implementation, theprocessor waits indefinitely or steps after a time out period if atrace-back timer has been started, regardless of the channel states. Ata deactivated component channel, the processor hunts through allfollowing contiguous deactivated channels for any arrival, and doestrace-back get, steps or stays until the trace-back timer expires, ifarrival time inversion is found. The time-fill SYNC₋₋ vB commands are tobe received over their preceding channels, if no other commands or dataare available through these channels. The receptions in load-balancingmode are always in hunting mode, across the full range of componentchannels. The processor continues looking for the correct sequencenumber for presentation. Trace-back time-out presentation scheme appliesin either mode.

Parameters which characterize a virtual B-channel to be opened and usedto monitor the channel hereinafter are listed in Table I.

                                      TABLE I                                     __________________________________________________________________________    Virtual B Channel Attributes (in C language representation)                   __________________________________________________________________________    typedef struct (                                                              long   err.sub.-- threshold;                                                                   /* one out of err.sub.-- threshold frames */                 short  err.sub.-- action thres;                                                                /* act on contig err.sub.-- action.sub.-- thres */           short  err.sub.-- action.sub.-- permit;                                                        /* allow deactivation of errored channel */                  short  max.sub.-- band.sub.-- width;                                                           /* max allowed bandwidth */                                  short  high.sub.-- util.sub.-- thres;                                                          /* high effective % band width threshold */                  short  high.sub.-- busy.sub.-- util.sub.-- thres;                                              /* one high util out of high.sub.-- busy.sub.-- util */      short  high.sub.-- action.sub.-- thres;                                                        /* act on contig high.sub.-- busy.sub.-- util.sub.--                          thres */                                                     short  high.sub.-- action.sub.-- permit;                                                       /* allow bandwidth increment actions */                      short  min.sub.-- band.sub.-- width;                                                           /* minimum allowed bandwidth */                              short  low.sub.-- util.sub.-- thres;                                                           /* low affective % bandwidth threshold */                    short  low.sub.-- busy.sub.-- util.sub.-- thres;                                               /* one low util out of low.sub.-- busy.sub.-- util */        short  low.sub.-- action.sub.-- thres;                                                         /* act on contig low.sub.-- busy.sub.-- util.sub.--                           thres */                                                     short  low.sub.-- action.sub.-- permit;                                                        /* allow bandwidth decrement actions */                      short  set.sub.-- up.sub.-- retry.sub.-- thres;                                                /* max contig retry before giving up */                      short  no action.sub.-- thres;                                                                 /* no action threshold time */                               ) VB.sub.-- THRESHOLD;                                                        __________________________________________________________________________

13. Traffic Sensing

Sensing of traffic for automatic control of bandwidth is carried out asfollows. Assuming that the sampling rate is one sample every twoseconds, the maximum bandwidth of the virtual channel opened is set tobe five B-channels, definition of the high₋₋ util thres is 75%, of ahigh₋₋ busy₋₋ util₋₋ thres is 5, the high action₋₋ thres is ten and theinitial channel opened is one B-channel (64 Kbps). As transmission rateincreases steadily from an original effective rate of 45 Kbps to 55Kbps, a procedure for adding a new line is automatically initiatedthirty seconds later. This assumes that the high₋₋ action₋₋ permit istrue. A new element channel is added and the new line utilization willbe 42.3% if traffic is maintained at 55 Kbps. An increase in input datarate thus drives up bandwidth growth. If the input data rate continuesto increase, the bandwidth eventually will reach five B-channels as amaximum.

When traffic decreases, assuming that the low₋₋ util thres is 30%, andthe low₋₋ busy₋₋ util₋₋ thres and low action₋₋ thres are five and ten,respectively, no line will be deleted from the virtual B if a pattern ofthe driving traffic does not have a utilization of less than 30% in anycontinuous ten seconds or there is no consecutive repeating ten or moretimes. If the low action₋₋ permit is false, no reduction in virtualB-channels is permitted. The attributes of the virtual B thus define thebandwidth control behavior.

If line error rate is above a predefined threshold rate for apredetermined period of time, line replacement operations are reduced inaddition to bandwidth control.

14. Conclusion

As described hereinabove, an ISDN gateway for local area networkscomprises circuit boards resident at each LAN for carrying out protocolconversion and other network interface functions. Two embodiments of thegateway provide bridger type and router type gateway services. Toimprove bandwidth utilization of the ISDN line while transferring voiceor data, a B-channel allocation algorithm executed by the gateway andthe ISDN line dynamically allocates bandwidth by monitoring traffic ateach destination queue and responsively allocating or deallocatingvirtual B-channels. Bandwidth utilization is optimized by packaging datapackets into trains that are transmitted to the destination when thetrain is completed and upon satisfaction of other conditions. Each trainundergoes data compression by execution of a suitable compressionalgorithm.

In this disclosure, there is shown and described only the preferredembodiment of the invention, but, as aforementioned, it is to beunderstood that the invention is capable of use in various othercombinations and environments and is capable of changes or modificationswithin the scope of the inventive concept as expressed herein.

We claim:
 1. An ISDN gateway at a customer premises for interfacing alocal area network having at least one host to an ISDN line,comprising:at least one circuit module resident with said host forinterfacing said local area network to said ISDN line, said at least onecircuit module including(a) means for performing protocol conversion ofdata flowing between said local area network and said ISDN line throughsaid gateway; (b) means for establishing input and output destinationqueues for said gateway; (c) means for measuring traffic flow at each ofsaid input and output destination queues during a particular timeinterval; (d) means responsive to said traffic flow measuring means fordynamically allocating channel bandwidth on said ISDN line; wherein saidat least one circuit module includes a communication mode adaptor (CMA)providing modem-like dial up protocols.
 2. An ISDN gateway as recited inclaim 1, wherein said at least one circuit module includes system mastermeans for managing a configuration of said gateway.
 3. The ISDN gatewayas recited in claim 2, wherein said at least one circuit module furtherincludes means for accessing system master means of other gateways onsaid ISDN line.
 4. The ISDN gateway as recited in claim 1, wherein saidat least one circuit module includes an ISDN manager means for receivingand routing incoming data, said ISDN manager including said means forestablishing, said means for measuring, said means for dynamicallyallocating, and means for setting up, selectively, circuit switched andvirtual circuit calls.
 5. The ISDN gateway as recited in claim 1,wherein said at least one circuit module includes an ISDN device driver.6. The ISDN gateway as recited in claim 1, wherein said at least onecircuit module includes a configuration control manager storing a tableof gateway operating parameters.
 7. The gateway of claim 1, wherein saidgateway includes means for performing bridger gateway services.
 8. Thegateway of claim 1, wherein said gateway includes means for performingrouter gateway services.
 9. An ISDN gateway at a customer premises forinterfacing a local area network having at least one host to an ISDNline, comprising:at least one circuit module resident with said host forinterfacing said local area network to said ISDN line, said at least onecircuit module including(a) means for performing protocol conversion ofdata flowing between said local area network and said ISDN line throughsaid gateway; (b) means for establishing input and output destinationqueues for said gateway; (c) means for measuring traffic flow at each ofsaid input and output destination queues during a particular timeinterval; (d) means responsive to said traffic flow measuring means fordynamically allocating channel bandwidth on said ISDN line; wherein saidmeans for dynamically allocating includes long term channel allocationmeans responsive to a polling means for allocating or deallocatingtransmission channels to a particular destination on said line dependingupon data flow traffic to said destination and particular channelparameters; and short term channel allocation means, overriding saidlong term channel allocation means in response to predeterminedconditions, for allocating or deallocating transmission channels on saidline.
 10. The gateway of claim 9, including means for assemblingpluralities of packets into trains of said packets, each trainconsisting of a predetermined number of packets, and means fortransmitting said trains onto said ISDN line.
 11. The gateway of claim8, including means for compressing said trains of said packets prior totransmission thereof onto said ISDN line.
 12. An ISDN gateway system ata customer premises for interfacing a remote host to a local areanetwork via an ISDN line, comprising:at least a first gateway moduleresident with said remote host for connecting said remote host to saidISDN line, at least a second gateway module resident with said localarea network for interfacing said local area network to said ISDN line,each of said first and second gateway modules including(a) means forperforming protocol conversion of data flowing between said remote hostor said local area network and said ISDN line through said gatewaymodules; (b) means for establishing input and output destination queuesfor said gateway system; (c) means for measuring traffic flow at each ofsaid input and output destination queues during a particular timeinterval; and (d) means responsive to said traffic flow measuring meansfor dynamically allocating channel bandwidth on said ISDN line.
 13. Thenetwork of claim 12, wherein said second gateway module includes meansfor performing bridger gateway services.
 14. The network of claim 12,wherein said second gateway module includes means for performing routergateway services.